package data;

/**
 * Enum TypePassager : represente les diffrentes type de passager pouvant avoir
 * un billet. Elle calcul donc aussi la reduction par rapport au type de
 * passager.
 * 
 * @author Alexandre Boursier and Mamadou Diallo and Cyril Gorrieri and Emmanuel
 *         Menage
 * @version 2012.01.23 
 */

public enum TypePassager {
	NORMAL(0), ENFANT(25), ENFANT_SEUL(50), ETUDIANT(65), SENIOR(30),
    FAMILLE(15), CARTE_FIDELITE(50);

    // la reduciton en pourcent
    private final int reduction;

    TypePassager(int reduction) {
        this.reduction = reduction;
    }

    /**
     * @param prix
     *            le prix auxquel on applique la reduction.
     * @return le nouveau prix, calculer a partir de la reduction
     */
    public int applyReduction(int prix) {
        return prix - (prix * this.reduction/100);
    }

    /**
     * renvoie une chaine de caractere en fonction de l'objet.
     * 
     * @return la chaine de caractere qui represente l'objet.
     */
    public String toString1() {
        switch (this) {
        case ENFANT:
            return "Enfant";
        case ENFANT_SEUL:
            return "Enfant seul";
        case ETUDIANT:
            return "Etudiant";
        case SENIOR:
            return "Senior";
        case FAMILLE:
            return "Famille";
        case CARTE_FIDELITE:
            return "Carte fidelité";
        default:
            return "Plien Tarif";
        }
    }
}